Increasingly it is desired to integrate systems providing two different services running on different platforms, either running on different operating systems, or programmed in different programming languages. For instance, large businesses now often have multiple disparate systems, which do not necessarily integrate well with each other. As another example, homes and offices are now typically filled with various connected devices, which often do not inter-communicate naturally, or even at all.
To coordinate the services provided by such systems, conventionally one has to design a dedicated, proprietary interface specifically for each particular pair of services. This usually involves either a complex system with large integration and implementation overhead, and high maintenance costs as new devices and systems are included, or extremely cost prohibitive bespoke development for specific systems and devices.